Redirect Handling

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client)
198
198

HTTP রিডাইরেকশন হল একটি প্রক্রিয়া যার মাধ্যমে ক্লায়েন্ট (যেমন ব্রাউজার বা HTTP ক্লায়েন্ট) একটি URL থেকে অন্য URL-এ রিডাইরেক্ট হয়। রিডাইরেকশন সাধারণত HTTP রেসপন্স কোড 3xx (যেমন 301, 302, 303, 307, 308) এর মাধ্যমে নির্ধারিত হয়, যা নির্দেশ করে যে রিকোয়েস্ট করা রিসোর্সটি অন্য স্থানে সরানো হয়েছে এবং ক্লায়েন্টকে নতুন ঠিকানায় যেতে বলা হয়।

অ্যাপাচি HTTP ক্লায়েন্ট রিডাইরেকশন ম্যানেজ করার জন্য স্বয়ংক্রিয় সমর্থন প্রদান করে, কিন্তু প্রয়োজনে আপনি এটি কাস্টমাইজ করতে পারেন।

রিডাইরেকশন হ্যান্ডলিং এর কনফিগারেশন:

অ্যাপাচি HTTP ক্লায়েন্টে রিডাইরেকশন হ্যান্ডলিং কনফিগার করতে RequestConfig এবং RedirectStrategy ব্যবহার করা হয়।

রিডাইরেকশন হ্যান্ডলিং উদাহরণ:

import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;
import org.apache.http.impl.client.RedirectStrategy;
import org.apache.http.impl.client.DefaultRedirectStrategy;

public class RedirectHandlingExample {
    public static void main(String[] args) {
        try {
            // RequestConfig তৈরি
            RequestConfig requestConfig = RequestConfig.custom()
                    .setMaxRedirects(5)  // সর্বোচ্চ রিডাইরেকশন সংখ্যা
                    .build();

            // কাস্টম RedirectStrategy সেট করা
            RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();

            // HttpClient তৈরি এবং RedirectStrategy সেট করা
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setDefaultRequestConfig(requestConfig)
                    .setRedirectStrategy(redirectStrategy)  // কাস্টম রিডাইরেকশন স্ট্র্যাটেজি
                    .build();

            HttpGet httpGet = new HttpGet("http://example.com");  // রিডাইরেক্ট হওয়া URL
            HttpResponse response = httpClient.execute(httpGet);  // রিকোয়েস্ট পাঠানো

            // রেসপন্স স্ট্যাটাস দেখানো
            System.out.println("Response Status: " + response.getStatusLine().getStatusCode());
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. RequestConfig: এখানে setMaxRedirects ব্যবহার করা হয়েছে, যা নির্ধারণ করে যে কতটি রিডাইরেকশন ক্লায়েন্ট অনুমোদন করবে। এটি রিডাইরেকশন প্রক্রিয়াকে নিয়ন্ত্রণ করতে সহায়ক।
  2. RedirectStrategy: এটি কাস্টম রিডাইরেকশন কৌশল তৈরি করতে ব্যবহৃত হয়। DefaultRedirectStrategy ডিফল্ট কৌশল সরবরাহ করে, যা সাধারণত কাজ করবে। তবে, আপনি এটি কাস্টমাইজ করতে পারেন যেমন রিডাইরেকশন হ্যান্ডলিংয়ের নিয়ম পরিবর্তন করা (যেমন, কিছু রিডাইরেকশন বাদ দেওয়া)।
  3. HttpGet: এখানে একটি GET রিকোয়েস্ট তৈরি করা হয়েছে যা রিডাইরেক্ট হবে।

রিডাইরেকশন প্রক্রিয়া কাস্টমাইজেশন:

আপনি যদি ডিফল্ট রিডাইরেকশন স্ট্র্যাটেজি পরিবর্তন করতে চান, তাহলে কাস্টম RedirectStrategy তৈরি করতে পারেন। উদাহরণস্বরূপ, যদি আপনি চান যে শুধুমাত্র নির্দিষ্ট রিডাইরেকশন কোড (যেমন 301 বা 302) কে প্রক্রিয়া করা হোক এবং অন্য কোডগুলি না হোক, তাহলে আপনি কাস্টম স্ট্র্যাটেজি তৈরি করতে পারবেন।

import org.apache.http.client.methods.HttpUriRequestBase;
import org.apache.http.impl.client.RedirectStrategy;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.HttpResponse;
import org.apache.http.HttpRequest;
import org.apache.http.impl.client.DefaultRedirectStrategy;
import org.apache.http.impl.client.HttpClients;

public class CustomRedirectStrategyExample {
    public static void main(String[] args) {
        try {
            // কাস্টম RedirectStrategy তৈরি
            RedirectStrategy customRedirectStrategy = new DefaultRedirectStrategy() {
                @Override
                public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) {
                    // শুধুমাত্র 301 এবং 302 রিডাইরেকশন সমর্থন করা
                    int statusCode = response.getStatusLine().getStatusCode();
                    return statusCode == 301 || statusCode == 302;
                }
            };

            // HttpClient তৈরি এবং কাস্টম RedirectStrategy সেট করা
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setRedirectStrategy(customRedirectStrategy)
                    .build();

            HttpGet httpGet = new HttpGet("http://example.com");  // রিডাইরেক্ট হওয়া URL
            HttpResponse response = httpClient.execute(httpGet);  // রিকোয়েস্ট পাঠানো

            // রেসপন্স স্ট্যাটাস দেখানো
            System.out.println("Response Status: " + response.getStatusLine().getStatusCode());
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

রিডাইরেকশন হ্যান্ডলিংয়ের সুবিধা:

  1. স্বয়ংক্রিয় রিডাইরেকশন: ডিফল্ট রিডাইরেকশন স্ট্র্যাটেজি আপনাকে স্বয়ংক্রিয়ভাবে HTTP রিডাইরেকশন প্রক্রিয়া পরিচালনা করতে সহায়ক।
  2. রিডাইরেকশন সংখ্যা নিয়ন্ত্রণ: আপনি সর্বোচ্চ রিডাইরেকশন সংখ্যা সীমাবদ্ধ করতে পারেন, যাতে ইনফিনিট রিডাইরেকশন লুপ থেকে রক্ষা পায়।
  3. কাস্টমাইজেশন: আপনি কাস্টম রিডাইরেকশন স্ট্র্যাটেজি তৈরি করে রিডাইরেকশন প্রক্রিয়া নিয়ন্ত্রণ করতে পারেন, যেমন কেবল নির্দিষ্ট HTTP কোডগুলির জন্য রিডাইরেকশন অনুমোদন করা।

সারাংশ:

অ্যাপাচি HTTP ক্লায়েন্ট রিডাইরেকশন হ্যান্ডলিং সহজে কনফিগার করা যায়, এবং এটি রিডাইরেকশন প্রক্রিয়া স্বয়ংক্রিয়ভাবে পরিচালনা করে। RequestConfig এবং RedirectStrategy ব্যবহার করে রিডাইরেকশন হ্যান্ডলিং কাস্টমাইজ করা যায় এবং সর্বোচ্চ রিডাইরেকশন সংখ্যা নির্ধারণ করা সম্ভব। এটি HTTP রিকোয়েস্ট ব্যবস্থাপনায় আরও স্থিতিস্থাপকতা এবং নিয়ন্ত্রণ প্রদান করে।

common.content_added_by

HTTP Redirects কনফিগারেশন

142
142

অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client)HTTP Redirects কনফিগারেশন গুরুত্বপূর্ণ, কারণ এটি HTTP রিকুয়েস্ট যখন রিডাইরেক্ট করা হয়, তখন ক্লায়েন্টকে রিডাইরেক্ট হ্যান্ডলিংয়ের জন্য কনফিগার করা হয়। সাধারণত, HTTP রিডাইরেক্ট 3XX স্ট্যাটাস কোড (যেমন 301, 302) দিয়ে সূচিত হয়, এবং এটি নির্দেশ করে যে ক্লায়েন্টকে অন্য URL এ রিকুয়েস্ট পাঠাতে হবে।

অ্যাপাচি HTTP ক্লায়েন্টে রিডাইরেক্ট কনফিগারেশন সম্পাদনা করা খুবই সহজ। RedirectStrategy ইন্টারফেস ব্যবহার করে রিডাইরেক্ট কনফিগার করা হয়, যা রিডাইরেক্টের আচরণ নিয়ন্ত্রণ করতে সহায়ক।

উদাহরণ: HTTP Redirects কনফিগারেশন

import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultRedirectStrategy;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.config.CookieSpecs;

public class HttpRedirectConfigExample {
    public static void main(String[] args) {
        try {
            // RedirectStrategy কনফিগারেশন (সব রিডাইরেক্ট অনুসরণ করা হবে)
            DefaultRedirectStrategy redirectStrategy = new DefaultRedirectStrategy();

            // RequestConfig কনফিগারেশন: রিডাইরেক্ট হ্যান্ডলিং সক্ষম করা
            RequestConfig requestConfig = RequestConfig.custom()
                    .setRedirectsEnabled(true) // রিডাইরেক্ট সক্ষম করা
                    .setMaxRedirects(5) // সর্বাধিক 5 বার রিডাইরেক্ট করা যাবে
                    .build();

            // HttpClient কনফিগারেশন তৈরি করা
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setDefaultRequestConfig(requestConfig)
                    .setRedirectStrategy(redirectStrategy) // রিডাইরেক্ট স্ট্র্যাটেজি সেট করা
                    .build();

            // HTTP GET রিকুয়েস্ট তৈরি করা
            HttpGet request = new HttpGet("http://example.com/redirect");

            // রিকুয়েস্ট পাঠানো এবং রেসপন্স গ্রহণ
            HttpResponse response = httpClient.execute(request);

            // রেসপন্স স্ট্যাটাস কোড পরীক্ষা
            int statusCode = response.getStatusLine().getStatusCode();
            System.out.println("Response Status Code: " + statusCode);

            // রেসপন্স কন্টেন্ট গ্রহণ করা
            String responseContent = EntityUtils.toString(response.getEntity());
            System.out.println("Response Content: " + responseContent);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

উদাহরণের ব্যাখ্যা:

  1. DefaultRedirectStrategy: এটি একটি ডিফল্ট রিডাইরেক্ট স্ট্র্যাটেজি, যা ক্লায়েন্টকে স্বয়ংক্রিয়ভাবে রিডাইরেক্ট অনুসরণ করতে দেয়। এটি HTTP রিডাইরেক্ট 3XX কোডের জন্য স্বয়ংক্রিয়ভাবে রিকুয়েস্ট পাঠায়।
  2. RequestConfig.setRedirectsEnabled(true): এটি নিশ্চিত করে যে রিডাইরেক্ট প্রক্রিয়া সক্রিয় থাকবে, অর্থাৎ HTTP ক্লায়েন্ট রিডাইরেক্টের প্রক্রিয়া অনুসরণ করবে।
  3. RequestConfig.setMaxRedirects(5): এটি নির্ধারণ করে যে, ক্লায়েন্ট সর্বাধিক কতবার রিডাইরেক্ট অনুসরণ করবে। এখানে 5 বার রিডাইরেক্ট অনুমোদিত।
  4. httpClient.execute(request): রিকুয়েস্টটি সার্ভারে পাঠানো হয় এবং সার্ভারের রেসপন্স গ্রহণ করা হয়। যদি রিডাইরেক্ট ঘটে, HTTP ক্লায়েন্ট সেটি স্বয়ংক্রিয়ভাবে অনুসরণ করবে।
  5. EntityUtils.toString(response.getEntity()): রেসপন্স কন্টেন্ট স্ট্রিং আকারে রূপান্তরিত করা হয়।

অতিরিক্ত কনফিগারেশন:

  • RedirectStrategy কাস্টমাইজেশন: আপনি যদি একটি কাস্টম রিডাইরেক্ট স্ট্র্যাটেজি ব্যবহার করতে চান (যেমন শুধুমাত্র কিছু নির্দিষ্ট URL এ রিডাইরেক্ট অনুসরণ করা), তবে আপনি RedirectStrategy ইন্টারফেস বাস্তবায়ন করে এটি করতে পারেন।
  • setCookieSpecs: যখন রিডাইরেক্ট ঘটে, তখন কুকি সম্পর্কিত আচরণও কনফিগার করা যেতে পারে। উদাহরণস্বরূপ, আপনি CookieSpecs.STANDARD ব্যবহার করে কুকি ব্যবস্থাপনা কনফিগার করতে পারেন।

সারাংশ:

অ্যাপাচি HTTP ক্লায়েন্টে HTTP Redirects কনফিগারেশন করা খুবই সহজ এবং এটি আপনার রিকুয়েস্টের জন্য রিডাইরেক্ট ব্যবস্থাপনা নিয়ন্ত্রণ করতে সহায়ক। আপনি RequestConfig এর মাধ্যমে রিডাইরেক্ট সক্ষম করতে পারেন এবং RedirectStrategy ব্যবহার করে রিডাইরেক্টের আচরণ কাস্টমাইজ করতে পারেন।

common.content_added_by

Automatically Redirect হওয়া হ্যান্ডেল করা

154
154

অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে অটোমেটিক রিডাইরেকশন হ্যান্ডেল করা একটি সাধারণ প্রক্রিয়া, যা HTTP অনুরোধে রিডাইরেকশন (যেমন 301, 302 HTTP স্ট্যাটাস কোড) স্বয়ংক্রিয়ভাবে অনুসরণ করতে সহায়ক। এটি সঠিকভাবে কনফিগার করলে ক্লায়েন্ট কোনো রিডাইরেক্টেড URL এ যাওয়ার জন্য স্বয়ংক্রিয়ভাবে নতুন অনুরোধ পাঠাতে সক্ষম হয়।

অ্যাপাচি HTTP ক্লায়েন্টে Automatic Redirect হ্যান্ডেল করতে নিচের পদ্ধতিগুলি অনুসরণ করা হয়:

Automatic Redirect হ্যান্ডেল করার জন্য Steps

1. RedirectsEnabledOption কনফিগার করা

অ্যাপাচি HTTP ক্লায়েন্টে রিডাইরেকশন সক্ষম করতে, RequestConfig কনফিগারেশন ব্যবহার করা হয়, যা setRedirectsEnabled(true) মেথডের মাধ্যমে রিডাইরেকশন সক্ষম করতে পারে। যদি এটি false থাকে, তবে ক্লায়েন্ট রিডাইরেকশন অনুসরণ করবে না।

2. Example Code:

import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.core5.util.TimeValue;

public class ApacheHttpClientRedirectExample {
    public static void main(String[] args) throws Exception {
        // RequestConfig কনফিগার করা
        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(5000)  // কানেকশন টাইমআউট
                .setResponseTimeout(5000) // রেসপন্স টাইমআউট
                .setRedirectsEnabled(true)  // রিডাইরেকশন সক্ষম করা
                .build();

        // HTTP ক্লায়েন্ট তৈরি করা
        try (CloseableHttpClient httpClient = HttpClients.custom()
                .setDefaultRequestConfig(requestConfig)
                .build()) {

            // GET অনুরোধ তৈরি করা
            HttpGet request = new HttpGet("http://example.com");

            // HTTP অনুরোধ পাঠানো এবং রিডাইরেকশন স্বয়ংক্রিয়ভাবে অনুসরণ করা
            try (CloseableHttpResponse response = httpClient.execute(request)) {
                System.out.println("HTTP Response Status Code: " + response.getCode());
                System.out.println("Response: " + response.getEntity());
            }
        }
    }
}

ব্যাখ্যা:

  • RequestConfig.setRedirectsEnabled(true) মেথডটি রিডাইরেকশন সক্ষম করে। এর মাধ্যমে HTTP ক্লায়েন্ট কোনো 301, 302 বা অন্য রিডাইরেকশন স্ট্যাটাস কোড পেলেই নতুন URL-এ অনুরোধ পাঠাতে সক্ষম হবে।
  • আপনি রিডাইরেকশন কিভাবে হ্যান্ডেল করবেন (যেমন, সর্বোচ্চ রিডাইরেকশন সংখ্যা) তা কনফিগারও করতে পারেন। উদাহরণস্বরূপ, setMaxRedirects(5) এর মাধ্যমে আপনি রিডাইরেকশন সংখ্যাটি নির্ধারণ করতে পারেন।

3. Maximum Redirects সংখ্যা নির্ধারণ করা:

RequestConfig কনফিগারেশনে আপনি রিডাইরেকশন সংখ্যা সীমিত করতে পারেন। উদাহরণস্বরূপ, ৫টি রিডাইরেকশন পর ক্লায়েন্ট আর রিডাইরেক্ট অনুসরণ করবে না।

RequestConfig requestConfig = RequestConfig.custom()
        .setConnectTimeout(5000)
        .setResponseTimeout(5000)
        .setRedirectsEnabled(true)  // রিডাইরেকশন সক্ষম করা
        .setMaxRedirects(5)         // সর্বোচ্চ ৫টি রিডাইরেকশন
        .build();

4. Redirect URL এর সাথে রিডাইরেকশন পদ্ধতি

যখন ক্লায়েন্ট একটি রিডাইরেকশন প্রাপ্তি করে, এটি রিডাইরেকশন URL অনুসরণ করবে এবং রিডাইরেক্টেড URL-এ অনুরোধ পাঠাবে। রিডাইরেকশন প্রক্রিয়া সম্পন্ন হলে আপনি রিডাইরেকশন প্রাপ্ত URL, HTTP স্ট্যাটাস কোড ইত্যাদি দেখতে পারেন।

5. Auto Redirects Disable করা:

যদি আপনি রিডাইরেকশন হ্যান্ডেল না করতে চান, তবে setRedirectsEnabled(false) ব্যবহার করতে পারেন।

RequestConfig requestConfig = RequestConfig.custom()
        .setConnectTimeout(5000)
        .setResponseTimeout(5000)
        .setRedirectsEnabled(false)  // রিডাইরেকশন নিষ্ক্রিয় করা
        .build();

সারাংশ

অ্যাপাচি HTTP ক্লায়েন্টে রিডাইরেকশন স্বয়ংক্রিয়ভাবে হ্যান্ডেল করার জন্য RequestConfig ব্যবহার করা হয়। setRedirectsEnabled(true) মেথডটি রিডাইরেকশন সক্ষম করে এবং setMaxRedirects() এর মাধ্যমে রিডাইরেকশন সংখ্যা সীমিত করা যায়। এইভাবে, ক্লায়েন্ট একাধিক রিডাইরেকশন অনুসরণ করতে পারে, যা আপনাকে একটি স্থির URL এর পরিবর্তে রিডাইরেক্টেড URL এর মাধ্যমে প্রয়োজনীয় ডেটা সংগ্রহ করতে সহায়ক।

common.content_added_by

Circular Redirects সমস্যা এবং সমাধান

152
152

Circular Redirects হল এমন একটি সমস্যা যেখানে একটি HTTP রিকোয়েস্ট একাধিক রিডাইরেক্ট লুপে আটকে যায়। এটি ঘটে যখন সার্ভার বারবার রিডাইরেক্ট নির্দেশ পাঠায় এবং রিকোয়েস্ট কখনই সম্পন্ন হয় না। এই সমস্যা সাধারণত একাধিক 3xx HTTP স্ট্যাটাস কোড (যেমন 301, 302, 307, 308) দিয়ে ঘটে এবং এটি সার্ভারের রিডাইরেক্ট কনফিগারেশন সম্পর্কিত সমস্যার কারণে হয়।

Apache HTTP Client-এ Circular Redirects সমস্যা সমাধান করার জন্য আপনাকে রিডাইরেক্ট পলিসি কনফিগার করতে হবে এবং কিছু সীমাবদ্ধতা সেট করতে হবে যেন রিডাইরেক্ট লুপে আটকে না যায়।

Circular Redirects সমস্যা:

একটি সাধারণ পরিস্থিতি হল, যদি আপনার অ্যাপ্লিকেশন একটি URL থেকে অন্য একটি URL-এ রিডাইরেক্ট হয়, এবং সেই নতুন URL আবার প্রথম URL-এ রিডাইরেক্ট করে, তাহলে রিডাইরেক্ট লুপ শুরু হয়। এতে HTTP ক্লায়েন্ট কখনও রেসপন্স পায় না, এবং সার্ভারটি অজান্তেই এড়িয়ে চলে।

সমস্যা সমাধান:

Apache HTTP Client-এ Circular Redirects সমস্যা সমাধান করার জন্য আপনি রিডাইরেক্ট পলিসি কনফিগার করতে পারেন এবং লুপ রিডাইরেক্ট সীমাবদ্ধ করতে পারেন। এর জন্য, RequestConfig এর setMaxRedirects মেথড ব্যবহার করা হয় যা রিডাইরেক্টের সর্বোচ্চ সংখ্যা নির্ধারণ করে। যদি এটি লিমিট পৌঁছে যায়, তখন ক্লায়েন্ট রিডাইরেক্ট বন্ধ করে দেয় এবং একটি TooManyRedirectsException ত্রুটি দেয়।

উদাহরণ: Circular Redirects সমাধান করা

import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.http.impl.client.RequestConfig;
import org.apache.http.impl.client.config.RequestConfig;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class HttpClientWithRedirectLimit {
    public static void main(String[] args) {
        // RequestConfig তৈরি করে রিডাইরেক্ট সীমা নির্ধারণ
        RequestConfig requestConfig = RequestConfig.custom()
                .setMaxRedirects(5)  // রিডাইরেক্টের সর্বোচ্চ সংখ্যা 5 নির্ধারণ করা
                .build();

        try (CloseableHttpClient httpClient = HttpClients.custom()
                .setDefaultRequestConfig(requestConfig)  // RequestConfig সেট করা
                .build()) {

            // HTTP GET রিকোয়েস্ট তৈরি
            HttpGet request = new HttpGet("https://your-api-endpoint.com");

            // রিকোয়েস্ট পাঠানো এবং রেসপন্স প্রাপ্তি
            try (CloseableHttpResponse response = httpClient.execute(request)) {
                String responseBody = EntityUtils.toString(response.getEntity());
                System.out.println("Response: " + responseBody);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. RequestConfig: RequestConfig তৈরি করা হয়েছে এবং তার মধ্যে setMaxRedirects(5) মেথড ব্যবহার করে রিডাইরেক্টের সর্বোচ্চ সংখ্যা 5 নির্ধারণ করা হয়েছে।
  2. HttpClients.custom(): HttpClients.custom() ব্যবহার করে HTTP ক্লায়েন্ট কনফিগার করা হয়েছে যেখানে কাস্টম রিকোয়েস্ট কনফিগারেশন যোগ করা হয়েছে।
  3. রিডাইরেক্ট সীমা: যদি রিডাইরেক্টের সংখ্যা 5-এর বেশি হয়, তাহলে এটি একটি TooManyRedirectsException তৈরি করবে এবং রিডাইরেক্ট লুপ থেকে বের হয়ে আসবে।

রিডাইরেক্ট পলিসি কনফিগারেশন:

Apache HTTP Client-এর RequestConfig ব্যবহার করে আপনি নিম্নলিখিত প্যারামিটারগুলো কনফিগার করতে পারেন:

  • setMaxRedirects(int maxRedirects): রিডাইরেক্টের সর্বোচ্চ সংখ্যা সেট করে।
  • setCircularRedirectsAllowed(boolean allowed): এই সেটিং দ্বারা আপনি রিডাইরেক্ট লুপের অনুমতি দিতে বা বন্ধ করতে পারেন। ডিফল্টভাবে, এটি true থাকে, যা রিডাইরেক্ট লুপের অনুমতি দেয়।

উদাহরণ: Circular Redirects বন্ধ করা

RequestConfig requestConfig = RequestConfig.custom()
                .setMaxRedirects(5)  // রিডাইরেক্টের সর্বোচ্চ সংখ্যা 5 নির্ধারণ করা
                .setCircularRedirectsAllowed(false)  // রিডাইরেক্ট লুপ বন্ধ করা
                .build();

সারাংশ:

Circular Redirects সমস্যা তখন ঘটে যখন একটি HTTP রিকোয়েস্ট একাধিক বার রিডাইরেক্ট লুপে আটকে যায়। এই সমস্যা সমাধান করতে Apache HTTP Client-এ RequestConfig ব্যবহার করা হয়, যা রিডাইরেক্টের সর্বোচ্চ সংখ্যা সীমাবদ্ধ করতে সাহায্য করে এবং রিডাইরেক্ট লুপ বন্ধ করতে সক্ষম। setMaxRedirects মেথড দ্বারা রিডাইরেক্ট সংখ্যা সীমাবদ্ধ করা এবং setCircularRedirectsAllowed(false) ব্যবহার করে রিডাইরেক্ট লুপ বন্ধ করা যেতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion